package es.mfp.practicos.web.util;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import es.mfp.practicos.domain.Empleado;
import es.mfp.practicos.domain.Parametros;
import es.mfp.practicos.service.ParametrosService;
import es.mfp.practicos.web.context.AppContext;

public class ApplicationContextListener implements ServletContextListener {

	private static final Log log = LogFactory
			.getLog(ApplicationContextListener.class);

	private ParametrosService parametrosService = null;

	@Override
	public void contextDestroyed(ServletContextEvent arg0) {

	}

	@Override
	public void contextInitialized(ServletContextEvent arg0) {

		parametrosService = AppContext.getApplicationContext().getBean(
				ParametrosService.class);

		if (parametrosService.buscarViegente() == null) {
			log.debug("Inicializando base de datos");
			inicializarBD();
		} else {
			log.debug("base de datos ya inicializada, omitiendo carga inicial");
		}

	}

	private void inicializarBD() {
		log.debug("BD no inicializada, cargando datos iniciales.");

		/*
		 * Impuestos y descuentos iniciales
		 */
		Parametros p = new Parametros();
		p.setIva(Double.valueOf(0.18));
		p.setSubvencionCorporacion(Double.valueOf(7.5));
		p.setPrefijoCodigoFactura("V-11-");
		p.setRutaFacturas("c:\\");
		p.setRelacionPuntosConsumo(1d);
		p.setProveedor("Vodafone");
		parametrosService.insertar(p);

		Empleado e = new Empleado();
		e.setApellido1("Lopez");
		e.setApellido2("Sanchez");
		e.setNombre("Manuel");
		e.setNif("00000000T");

		Empleado e1 = new Empleado();
		e1.setApellido1("Guitierrez");
		e1.setApellido2("Vega");
		e1.setNombre("Miguel");
		e1.setNif("41741772S");

		// SOLO PARA PRUEBAS
		// empleadoService.insertar(e);
		// empleadoService.insertar(e1);

	}

}